--- title: "L2-021 点赞狂魔" created: 2025-11-28 tags: - 算法 --- # L2-021 点赞狂魔 ## 题目 [L2-021 点赞狂魔](https://pintia.cn/problem-sets/994805046380707840/exam/problems/type/7?problemSetProblemId=994805058485469184&page=1) ![[image-358ec5e5.png]] ## 思路分析 ![[image-edfe2107.png]] ## 代码实现 ```cpp #include using namespace std; #define endl '\n' using ll = long long; using ull = unsigned long long; using PII = pair; using Pll = pair; int dx[4]={-1,0,1,0},dy[4]={0,1,0,-1}; const int inf = 0x3f3f3f3f; struct People{ string name; set likes; double aver; bool operator<(const People& rhs) const{ if(likes.size()!=rhs.likes.size()) return likes.size()>rhs.likes.size(); return aver peoples; int main(){ ios::sync_with_stdio(0),cin.tie(0),cout.tie(0); int n;cin>>n; while(n--){ string name;int k; cin>>name>>k; set curLikes; for(int i=0;i>tagId; curLikes.insert(tagId); } double curAver=k*1.0/curLikes.size(); peoples.push_back({name,curLikes,curAver}); } sort(peoples.begin(),peoples.end()); vector res; for (int i=0;i<3;i++) { if(i